home *** CD-ROM | disk | FTP | other *** search
/ Packard Bell - Internet on a CD / internet on a cd.cdr / Internet / sites / Clementine_NASA / jpeg_c.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-07-16  |  1.5 KB  |  62 lines

  1.  
  2. /* Structure Definitions */
  3. enum FmodeDef { INPUT, OUTPUT };
  4. typedef enum FmodeDef Fmode;
  5.  
  6. struct ByteStreamDef
  7. {
  8.     Fmode   mode;
  9.     short   stat;
  10.     FILE    *file;
  11. };
  12. typedef struct ByteStreamDef ByteStream;
  13.  
  14. extern void cByteStream( ByteStream *, char *FileName, Fmode FileMode );
  15. extern void dByteStream(ByteStream *);
  16. extern short ByteStream_read(ByteStream *);
  17. extern short ByteStream_write(ByteStream *, short c);
  18. extern short ByteStream_status(ByteStream *);
  19.  
  20. #define MEMORY  1
  21. #define DISK    0
  22. #if defined(__WIN32__) || defined(sun)
  23. #define MALLOC    malloc
  24. #define FREE    free
  25. #define CHARH    unsigned char
  26. #define FAR
  27. #else
  28. #define MALLOC    farmalloc
  29. #define FREE    farfree
  30. #define CHARH    unsigned char huge
  31. #define FAR        far
  32. #endif
  33.  
  34. struct BitStreamDef
  35. {
  36.     ByteStream    bytestream;
  37.     short        BitBuffer;      /* Bit I/O buffer */
  38.     short         BitBuffMask;    /* Bit I/O buffer mask */
  39.     CHARH        *outstring;
  40.     char        mode;
  41.     unsigned long    bytesout;
  42.     unsigned short    bitmask[17];
  43. };
  44. typedef struct BitStreamDef BitStream;
  45.  
  46. extern void cBitStream( BitStream *, char *fn, Fmode fm );
  47. extern void dBitStream(BitStream *);
  48. extern short BitStream_write(BitStream *, short bits, short width);
  49. extern short BitStream_read(BitStream *, short bits);
  50.  
  51. /* Global Tables */
  52. extern float    qtable[64];
  53. extern int        zzseq[64];
  54. extern short    dcbits[16], acbits[16];
  55. extern char        dchuffval[12], achuffval[162];
  56.  
  57. /* Function Declarations */
  58. extern void inithuffcode();
  59. extern void encode(short *, BitStream *);
  60. extern void decode(short *, BitStream *);
  61. extern void decomp(BitStream *bs,CHARH *Image,long rows,long cols);
  62.